package com.newjiabo.common.ski.media.module.entity.dto;

import com.newjiabo.common.ski.media.module.entity.dto.pay.Amount;
import com.newjiabo.common.ski.media.module.entity.dto.pay.Payer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotEmpty;

/**
 * @author CaoMengHui.
 */
@ApiModel("微信支付封装类")
public class WeChatPayDto {

    /**
     * 应用ID
     */
    private String appid;

    /**
     * 直连商户号
     */
    private String mchid;

    /**
     * 商品描述
     */
    @ApiModelProperty("商品描述(小程序必须传)")
    @NotEmpty(message = "商品描述不能为空！")
    private String description;

    /**
     * 商户订单号
     */

    @NotEmpty(message = "商户订单号不能为空！")
    private String out_trade_no;

    /**
     * 交易结束时间
     */
    private String time_expire;

    /**
     * 附加数据
     */
    private String attach;

    /**
     * 回调地址
     */
    private String notify_url;

    /**
     * 订单金额
     */
    private Amount amount;

    /**
     * 支付者
     */
    private Payer payer;

    public WeChatPayDto() {
    }

    public WeChatPayDto(String description, String out_trade_no, String notify_url, Amount amount, Payer payer) {
        this.description = description;
        this.out_trade_no = out_trade_no;
        this.notify_url = notify_url;
        this.amount = amount;
        this.payer = payer;
    }

    public String getAppid() {
        return appid;
    }

    public void setAppid(String appid) {
        this.appid = appid;
    }

    public String getMchid() {
        return mchid;
    }

    public void setMchid(String mchid) {
        this.mchid = mchid;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getOut_trade_no() {
        return out_trade_no;
    }

    public void setOut_trade_no(String out_trade_no) {
        this.out_trade_no = out_trade_no;
    }

    public String getTime_expire() {
        return time_expire;
    }

    public void setTime_expire(String time_expire) {
        this.time_expire = time_expire;
    }

    public String getAttach() {
        return attach;
    }

    public void setAttach(String attach) {
        this.attach = attach;
    }

    public String getNotify_url() {
        return notify_url;
    }

    public void setNotify_url(String notify_url) {
        this.notify_url = notify_url;
    }

    public Amount getAmount() {
        return amount;
    }

    public void setAmount(Amount amount) {
        this.amount = amount;
    }

    public Payer getPayer() {
        return payer;
    }

    public void setPayer(Payer payer) {
        this.payer = payer;
    }
}
